Rttable : Routing table management
This module provides a routing table operation interface.
User can use the following code to import the rttable module.
var rttable = require('router/rttable');
Support
The following shows rttable module APIs available for each permissions.
| User Mode | Privilege Mode | |
|---|---|---|
| rttable.list | ● | ● |
| rttable.add | ● | |
| rttable.delete | ● | |
| rttable.change | ● | |
| rttable.default | ● |
Rttable Object
rttable.list(domain)
domain{Integer} Network protocol domain, must be:socket.AF_INETorsocket.AF_INET6.- Returns: {Array} Array of all routing entries in the specified network protocol domain.
List all routing entries of the specified network protocol domain. Each routing entry contains the following members:
dest{String} Destination address.genmask{String} Netmask.gateway{String} Gateway address.lock{Boolean} Is this entry locked.flags{Integer} Route entry flags.metric{Integer} Route metric.refcnt{Integer} Route reference count.ifname{String} Route network interface.
flags consists of the following bits:
rttable.RTF_UPThis route is valid.rttable.RTF_GATEWAYThis route is a gateway route.rttable.RTF_HOSTThis route is a host route.rttable.RTF_DYNAMICThis route is a dynamic route.
Example
var array = rttable.list(socket.AF_INET);
array.forEach(function(item) {
console.log(item);
});
rttable.add(domain, flags, dest, genmask[, gateway[, ifname[, metric]]])
domain{Integer} Network protocol domain, must be:socket.AF_INETorsocket.AF_INET6.flags{Integer} Route entry flags.dest{String} Destination address.genmask{String} Netmask.gateway{String} Gateway address. default:0.0.0.0or::ifname{String} Route network interface. default: undefined means choose the most suitable network interface according to the gateway settings.metric{Integer} Route metric. default: 0- Returns: {Boolean} Whether the operation was successful.
Add a route entry. This route entry can be a host route or a network route.
Example
- Add host route
rttable.add(socket.AF_INET, rttable.RTF_UP | rttable.RTF_HOST, '12.0.0.1', '255.255.255.255', '10.0.0.1');
- Add net route
rttable.add(socket.AF_INET, rttable.RTF_UP | rttable.RTF_GATEWAY, '12.0.0.0', '255.0.0.0', '10.0.0.1');
- Add default route
native.add(socket.AF_INET, native.RTF_UP | native.RTF_GATEWAY, '0.0.0.0', '0.0.0.0', gateway, ifname, metric);
rttable.delete(domain, flags, dest[, genmask[, [gateway[, [ifname]]]]])
domain{Integer} Network protocol domain, must be:socket.AF_INETorsocket.AF_INET6.flags{Integer} Route entry flags.dest{String} Destination address.genmask{String} Netmask.gateway{String} Gateway address.ifname{String} Route network interface.- Returns: {Boolean} Whether the operation was successful.
Delete a route item according to the input parameters, return true if successful, otherwise return false.
rttable.change(domain, flags, dest, genmask[, gateway, [ifname[, metric]]])
domain{Integer} Network protocol domain, must be:socket.AF_INETorsocket.AF_INET6.flags{Integer} Route entry flags.dest{String} Destination address.genmask{String} Netmask.gateway{String} Gateway address. default:0.0.0.0or::ifname{String} Route network interface. default: undefined means choose the most suitable network interface according to the gateway settings.metric{Integer} Route metric. default: 0- Returns: {Boolean} Whether the operation was successful.
First match a routing information that has been added by the destination address, and modify this routing information according to the input parameters.
rttable.default(domain[, gateway[, ifname[, metric]]])
domain{Integer} Network protocol domain, must be:socket.AF_INETorsocket.AF_INET6.gateway{String} Gateway address. default:0.0.0.0or::ifname{String} Route network interface. default: undefined means choose the most suitable network interface according to the gateway settings.metric{Integer} Route metric. default: 0- Returns: {Boolean} Whether the operation was successful.
Add or set a default route.
Example
rttable.default(socket.AF_INET, '0.0.0.0', 'en1');
rttable.default(socket.AF_INET, '10.0.0.1');




陕公网安备61019002002605号